#include <unistd.h>
#include <sys/stat.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;

int main( int argc, char *argv[] )
{
	const char *path = "ungetc.txt";

	if( argc > 1 )
		path = argv[1];
	FILE *fp;
	if( ( fp = fopen( path, "r+" ) ) == NULL ) {
		perror( "open file error!" );
		exit( 0 );
	}

	int c = 0;

	while( ( c = getc( fp ) ) != EOF ) {
		if( 'm' == ( char )c ) {
			ungetc( c - 1, fp );
			fflush( fp );
			continue;
		}
		cout << (char)c;
	}
	fclose( fp );
}

// 可以看到的是：ungetc确实不会去写文件，但是上面的程序中有没有fflush差别还是有的？？
// 当有fflush后就读不到刚ungetc的字符了。
